﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Nachos.Machine
{
    public static class Registers
    {
        public const int StackReg	 =   29;	// User's stack pointer
        public const int RetAddrReg  = 	 31;// Holds return address for procedure calls
        public const int NumGPRegs	 =   32;	// 32 general purpose registers on MIPS
        public const int HiReg	     =	 32;	// Double register to hold multiply result
        public const int LoReg		 =   33;
        public const int PCReg		 =   34;	// Current program counter
        public const int NextPCReg	 =   35;	// Next program counter (for branch delay) 
        public const int PrevPCReg	 =   36;	// Previous program counter (for debugging)
        public const int LoadReg	 = 	 37;	// The register target of a delayed load.
        public const int LoadValueReg 	= 38;	// The value to be loaded by a delayed load.
        public const int BadVAddrReg	= 39;	// The failing virtual address on an exception

    }
}
